<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //   console.log(Array.prototype)

      // 添加一个求和的数组方法

      //   Array.prototype.getSum = function () {
      //     //准备和的容器
      //     let sum = 0
      //     for (let i = 0; i < this.length; i++) {
      //       sum += this[i]
      //     }
      //     return sum
      //   }

      //   Array.prototype = {
      //     getSum: function () {
      //       //准备和的容器
      //       let sum = 0
      //       for (let i = 0; i < this.length; i++) {
      //         sum += this[i]
      //       }
      //       return sum
      //     },
      //   }

      //   console.log(Array.prototype)

      //   const arr = [1, 2, 3, 4]
      //   const arr1 = [4, 5, 6, 7, 8]

      //   console.log(arr)
      //   const res = arr.getSum()
      //   const res1 = arr1.getSum()

      //   console.log(res)
      //   console.log(res1)

      //   function Star(uname, age, song) {
      //     this.uname = uname
      //     this.age = age
      //     this.song = song
      //   }

      //   console.log(Star.prototype)
      //   Star.prototype.sing = function () {
      //     console.log('我会唱' + this.song)
      //   }

      //   Star.prototype.jump = function () {
      //     console.log('我会跳大神')
      //   }
      //   Star.prototype.dance = function () {
      //     console.log('我会开坛作法')
      //   }

      //   Star.prototype = {
      //     constructor: Star,
      //     // ...Star.prototype,
      //     sing: function () {
      //       console.log('我会唱' + this.song)
      //     },
      //     jump: function () {
      //       console.log('我会跳大神')
      //     },
      //     dance: function () {
      //       console.log('我会开坛作法')
      //     },
      //   }

      //   const obj = { ...Star.prototype }
      //   console.log(obj)

      //   const hcy = new Star('华', 30, '癌')

      //   console.log(Star.prototype)

      //   hcy.sing()
      //   hcy.jump()
      //   hcy.dance()

      //实现自己的forEach

      //forEach 循环遍历数组，每次遍历都执行回调函数
      //把自己的forEach方法挂载在原型对象上
      //准备一个形参接受回调函数
      Array.prototype.myForEach = function (fn) {
        for (let i = 0; i < this.length; i++) {
          //调用回调函数
          //   console.log(1)
          fn(this[i], i, this)
        }
      }

      const arr = [1, 2, 3, 4]

      //   arr.forEach((item) => {
      //     console.log(item)
      //   })

      arr.myForEach((element, index, array) => {
        console.log(element)
        console.log(index)
        console.log(array)
      })
    </script>
  </body>
</html>
